#include "HistorialEnvios.h"

HistorialEnvios::HistorialEnvios()
{
    list = new ListaEnvio();
}
HistorialEnvios::~HistorialEnvios()
{
    delete list;
}
void HistorialEnvios::setList(ListaEnvio* li)
{
    list = li;
}
ListaEnvio* HistorialEnvios::getLista()
{
    return list;
}
void HistorialEnvios::agregarListasEnvios(ListaEnvio* li)
{
    NodoEnvio* inicio = li->getPrimero();
    if(inicio != NULL)
    {
        NodoEnvio* actu = list->getPrimero();
        if(actu != NULL)
        {
            while(actu->getSigNodo() != NULL)
            {
                actu = actu->getSigNodo();
            }
            actu->setSigNodo(inicio);
        }
        else
        {
            list->setPrimero(actu);
        }
    }
}
int HistorialEnvios::calculaEnviosTotal()
{
    int cont = 0;
    NodoEnvio* aux= list->getPrimero();
    if(aux != NULL)
    {
        while(aux->getSigNodo() != NULL)
        {
            cont++;
            aux = aux->getSigNodo();
        }
    }
    return cont;
}

float HistorialEnvios::ganciasTotal()
{
    float money = 0;
    if(list != NULL && list->getPrimero()->getSigNodo() != NULL)
    {
        list->setActual(list->getPrimero());
        while(list->getActual()->getSigNodo() != NULL)
        {
            money = money + list->getActual()->getEnvio()->costoEnvio();
            list->setActual(list->getActual()->getSigNodo());
        }
    }
    else if(list->getPrimero()->getSigNodo() == NULL)
    {
        money =  list->getPrimero()->getEnvio()->costoEnvio();
    }
    return money;
}

void HistorialEnvios::agregarEnvio(Envios* obj)
{
    list->insertarPrimero(obj);
}

void HistorialEnvios::mostrarHistorial()
{
    list->mostrarListaEnvios();
}
